package rpcx

var (
	services map[string]ServiceInst
)

type ServiceInst struct {
	name string
	svr  interface{}
	meta string
}

func init() {
	services = make(map[string]ServiceInst)
}

// RegisterService register rpc service
func RegisterService(name string, inst interface{}, meta string) {
	services[name] = ServiceInst{
		name: name,
		svr:  inst,
		meta: meta,
	}
}

// rpcx configs
type RPCxConfig struct {
	NodeId         int64    `json:"node_id"` // 所属节点ID，model.Node#NodeId
	ServID         int64    `json:"serv_id"` // 服务ID
	ServName       string   `json:"node_name"`
	RegServs       []string // ETCD Servers
	BasePath       string   `json:"base_path"` // PRCx BasePath
	ServAddr       string   `json:"serv_addr"` // 服务地址
	BindAddr       string   `json:"bind_addr"` // 绑定地址
	UpdateInterval int64    `json:"update_interval"`
	MaxQPS         int64    `json:"max_qps"`
	Weight         int64    `json:"weight"`
	Meta           string   `json:"meta"`
	Username       string   `json:"username"`
	Password       string   `json:"password"`
}
